home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 2410 / 2410.xpi / chrome / content / foxmarks-statusbar.js < prev    next >
Text File  |  2010-01-28  |  2KB  |  85 lines

  1. /* 
  2.  Copyright 2007 Foxmarks Inc.
  3.  
  4.  foxmarks-statusbar.js: implement the foxmarks status bar
  5.  */
  6.  
  7. if (typeof(Cc) == "undefined") var Cc = Components.classes;
  8. if (typeof(Ci) == "undefined") var Ci = Components.interfaces;
  9.  
  10. var STATE_MAP = {
  11.     ready: { src: "chrome://foxmarks/skin/images/ready.png", 
  12.         tooltip: "icon.tooltip.ready" },
  13.     dirty: { src: "chrome://foxmarks/skin/images/dirty.png",
  14.         tooltip: "icon.tooltip.dirty" },
  15.     working: { src: "chrome://foxmarks/skin/images/wheel_16.gif",
  16.         tooltip: "icon.tooltip.working2" },
  17.     error: { src: "chrome://foxmarks/skin/images/error.png",
  18.         tooltip: "icon.tooltip.error" }
  19. };
  20.  
  21.  
  22. function FoxmarksQuietSync() {
  23.     var foxmarks = Cc["@foxcloud.com/extensions/foxmarks;1"]
  24.         .getService(Ci.nsIFoxmarksService);
  25.  
  26.     foxmarks.synchronize();
  27. }
  28.  
  29. var stateObserver = {
  30.     observe: function(subject, topic, data) {
  31.         UpdateStateIndicator(data);
  32.     }
  33. }
  34.  
  35. function UpdateStateIndicator(state) {
  36.     if (state == "hide" || state == "show") {
  37.         UpdateHiddenState();
  38.     } else {
  39.         var panel = document.getElementById("foxmarks-statusimage");
  40.         panel.src = STATE_MAP[state].src;
  41.         panel.tooltipText = Cc["@mozilla.org/intl/stringbundle;1"].
  42.             getService(Ci.nsIStringBundleService).
  43.             createBundle("chrome://foxmarks/locale/foxmarks.properties").
  44.             GetStringFromName(STATE_MAP[state].tooltip);
  45.     }
  46. }
  47.  
  48.  
  49. function UpdateHiddenState(state) {
  50.     if (state == null) {
  51.         state = Xmarks.gSettings.hideStatusIcon;
  52.     } else {
  53.         Xmarks.gSettings.hideStatusIcon = state;
  54.     }
  55.     document.getElementById("foxmarks-statusbarpanel").hidden = state;
  56. }
  57.  
  58. function StatusBarLoad() {
  59.     var os = Cc["@mozilla.org/observer-service;1"].
  60.         getService(Ci.nsIObserverService);
  61.     os.addObserver(stateObserver, "foxmarks-statechange", false);
  62.  
  63.     var foxmarks = Cc["@foxcloud.com/extensions/foxmarks;1"]
  64.         .getService(Ci.nsIFoxmarksService);
  65.     var state = foxmarks.getState();
  66.     UpdateStateIndicator(state);
  67.     UpdateHiddenState();
  68.  
  69.     return;
  70. }
  71.  
  72. function StatusBarUnload() {
  73.     var os = Cc["@mozilla.org/observer-service;1"].
  74.         getService(Ci.nsIObserverService);
  75.  
  76.     try {
  77.         os.removeObserver(stateObserver, "foxmarks-statechange");
  78.     } catch (e) {
  79.         Xmarks.LogWrite("Warning: removeObserver failed.");
  80.     }
  81. }
  82.  
  83. window.addEventListener("load", StatusBarLoad, false);
  84. window.addEventListener("unload", StatusBarUnload, false);
  85.